#define _CRT_SECURE_NO_WARNINGS 1 
#include"_hashtable.hpp"
#include"_hashbucket.hpp"


int main() {
	HashTable<string, int>hash;
	
	hash.Insert({ "a",1 });

	hash.Insert({ "b",1 });
	hash.Insert({ "c",1 });
	hash.Insert({ "d",1 });
	hash.Insert({ "e",1 });
	hash.Insert({ "f",1 });





	/*hash.Insert({ "sort",1 });
	hash.Insert({ "left",1 });
	hash.Insert({ "right",1 });
	hash.Insert({ "insert",1 });
	hash.Insert({ "find",1 });
	hash.Insert({ "erase",1});

	cout << GetINTData<string>()("sort") << endl;
	cout << GetINTData<string>()("left") << endl;
	cout << GetINTData<string>()("right") << endl;
	cout << GetINTData<string>()("insert") << endl;

	cout << GetINTData<string>()("find") << endl;
	cout << GetINTData<string>()("erase") << endl;*/




	/*hash.Insert({ 10,1});
	hash.Insert({ 1,1 });
	hash.Insert({ 22,1 });
	hash.Insert({ 3,1 });
	hash.Insert({ 2,1 });
	hash.Insert({ 4,1 });
	hash.Insert({ 26,1 });
	hash.Insert({ 29,1 });
	hash.Erase(26);
	hash.Erase(10);

	hash.Insert({ 33,1 });
	hash.Insert({ 44,1 });
	hash.Insert({ 55,1 });
	hash.Insert({ 66,1 });
	hash.Insert({ 77,1 });

	hash.Insert({ 5,1 });*/

	return 0;
}

//int main() {
//	HashBucket<int, int> hash;
//
//	hash.Inser({ 3,1 });
//
//	hash.Inser({ 9,1 });
//
//	hash.Inser({ 1,1 });
//
//	hash.Inser({ 5,1 });
//
//	hash.Inser({ 6,1 });
//
//	hash.Inser({ 66,1 });
//
//	hash.Inser({ 7,1 });
//
//	hash.Inser({ 57,1 });
//
//	hash.Inser({ 58,1 });
//
//	hash.Inser({ 4,1 });
//	hash.Inser({ 2,1 });
//	hash.Inser({ 21,1 });
//	hash.Inser({ 13,1 });
//	hash.Inser({ 22,1 });
//	hash.Inser({ 52,1 });
//	hash.Inser({ 15,1 });//17
//	hash.Inser({ 10,1 });
//	hash.Inser({ 31,1 });
//	hash.Inser({ 11,1 });
//	hash.Inser({ 41,1 });
//	//25
//
//	cout << "count:" << hash.Count() << endl;
//
//	hash.Erase(31);
//	hash.Erase(11);
//
//	hash.Erase(1);
//	hash.Erase(41);
//	hash.Erase(21);
//
//	hash.Erase(2);
//	hash.Erase(3);
//	hash.Erase(4);
//	hash.Erase(5);
//	hash.Erase(6);
//
//	cout << hash.Erase(31) << endl;
//
//	cout << "count:" << hash.Count() << endl;
//
//
//	return 0;
//}